package com.winshare.saleAssistant.mapper;

import com.winshare.saleAssistant.domain.dto.req.*;
import com.winshare.saleAssistant.domain.entity.ArticleModuleDO;
import com.winshare.saleAssistant.domain.query.ArticleModuleQuery;
import com.winshare.saleAssistant.domain.dto.resp.ArticleModuleRespDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers;

import java.util.List;

@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface ArticleModuleMapStruct {

    ArticleModuleMapStruct INSTANCE = Mappers.getMapper(ArticleModuleMapStruct.class);

    ArticleModuleDO fromArticleModuleCreateDTO(ArticleModuleCreateDTO articleModuleCreateDTO);

    ArticleModuleDO fromArticleModuleUpdateDTO(ArticleModuleUpdateDTO articleModuleUpdateDTO);

    ArticleModuleDO fromArticleModuleDeleteDTO(ArticleModuleDeleteDTO articleModuleDeleteDTO);

    ArticleModuleQuery fromArticleModuleQueryDTO(ArticleModuleQueryDTO articleModuleQueryDTO);

    List<ArticleModuleRespDTO> fromArticleModuleRespDTOList(List<ArticleModuleDO> articleModuleDOList);

    ArticleModuleDO fromBaseIdDTO(BaseIdDTO baseIdDTO);

    ArticleModuleRespDTO fromArticleModuleDO(ArticleModuleDO articleModuleDOInSql);
}
